// 给你一个整数数组 nums ，请你将数组按照每个值的频率 升序 排序。
// 如果有多个值的频率相同，请你按照数值本身将它们 降序 排序。 
var frequencySort = function (nums) {
  nums.sort((a, b) => {
    return b - a;
  });
  let i = 0, res = [], temp = 0;
  while (i < nums.length) {
    if (nums[i] === nums[i + 1]) {
      temp++;
    } else {
      res.push({ key: nums[i], value: temp + 1 })
      temp = 0;
    }
    i++;
  }
  res.sort((a, b) => {
    return a.value - b.value;
  })
  let final = [];
  for (i = 0; i < res.length; i++) {
    for (let j = 1; j <= res[i].value; j++) {
      final.push(res[i].key);
    }
  }
  return final;
};
console.log(frequencySort([1, 2, 2, 3, 4]));
console.log(frequencySort([1, 1, 2, 2, 2, 3]));
console.log(frequencySort([-1, 1, -6, 4, 5, -6, 1, 4, 1]));